#ifndef ABSTRACTFILTER_HPP
#define ABSTRACTFILTER_HPP

#include "cv.h"
#include "highgui.h"

//FIX : big three?

class AbstractFilter {
public:
	
	virtual ~AbstractFilter() {};
	
	virtual void filterInPlace( cv::Mat& srcAndDst ) = 0; //=0 denotes pure virtual function! 
};

//First impl decl
class OpenFilter : public AbstractFilter {
public:
	OpenFilter(int iterations);
	void filterInPlace( cv::Mat& srcAndDst );
	
private:
	const int iterations;
};

#endif